package cn.edu.scau.cmi.ema.service;

import cn.edu.scau.cmi.ema.base.CmiPagination;
import cn.edu.scau.cmi.ema.domain.Feature;

import java.util.List;
import java.util.Map;
import java.util.Set;


public interface FeatureService {

	public Feature saveFeature(Feature feature);

	public Set<Feature> loadFeatures();

	public Set<Feature> loadReferenceFeatures(Set<Feature> features);

	public Set<Feature> loadFeaturesByIdSet(Set<Integer> featuresId);

	public Map<String, ?> loadFeatureObjectReferencedSet(Feature feature);

	public Map<String, ?> loadFeatureClassReferencedSet(Feature feature);

	public void deleteFeature(Feature feature);

	public void deleteFeatures(Set<Integer> deleteFeaturesId);

	public List<Feature> findAllFeatures(Integer startResult, Integer maxRows);

	public Feature findFeatureByPrimaryKey(Integer id);

	public Integer countFeatures();

	public Integer countFeatures(CmiPagination page);

	public Integer countFeaturesByName(String queryName);

	public Integer countFeaturesByDetachedCriteria(CmiPagination page);

}
